list1 = [1,2,34,5,6,7,1,34]
print(list1.count(1))
del list1[5]
print(list1)
list1.pop(2)
print(list1)
list1.remove(1)
print(list1)
#pop,insert 都是对index进行操作  
#append , remove 都是对值进行操作

#  高级切片
#  [] 这种写法就是去调用 __getitem__方法
dict1 = {
    'one' : 4,
    'two' : "",
}
print(dict1['one'])
del dict1['one']
print(dict1)
dict1.pop('two')
print(dict1)



list2 = ['a','b','c']
list2 * 5 #产生的新列表不会影响list2
print(list2)

#创建2维列表
list_2 = [['_'] * 3 for i in range(3)]
print(list_2)

#思考一下这两个有什么区别
example1 = [1] * 3
example2 = [[1]] * 3
print(example1,example2)

example3 = ([1],[2]) * 2
print(example3)
example3[1][0] = 3   # 如果这样写example3[1] = [3]会报错

example3[1].append(4)
print(example3)

t = (1, 2, [30, 40])
t[2].extend([50, 60])
print(t)


sort_list = ['asdjfk','a','sss','fjffjfjfjfj']
new_list = sorted(sort_list,key=len,reverse=True)


#使用array.array来存储100000个数字
from array import array
from random import random
floats = array('d',(random() for i in range(10**5)))
#floats 是一个数组 不是生成器了

from collections import deque
d1 = deque(['a','b','c','d'],maxlen = 10)
d1.rotate(1)
d1.extendleft((i for i in range(5)))
d1.appendleft(1)
d1.append(2)
print(d1)